package ar.edu.utn.frsf.tpae.a2012.g01.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

/**
 * Representa el tipo de cuenta, Cuenta Corriente
 * 
 * @author HP
 *
 */
@Entity
@Table(name = "cta_cte")
@PrimaryKeyJoinColumn(name="cta_id")
public class CuentaCorriente extends Cuenta {
	
	@Column(name = "cta_cte_max_op_mens")
	private int maximasOperacionesMensuales;
	@Column(name = "cta_cte_cost_mant")
	private double costoMantenimiento;
	@Column(name = "cta_cte_lim_sdo_neg")
	private double limiteSaldoNegativo;
	@Column(name = "cta_cte_int_sdo_neg")
	private double saldoNegativo;

	/**
	 * Constructor por defecto
	 * 
	 */
	public CuentaCorriente() {	}
	
	/**
	 * Constructor
	 * 
	 * @param numero
	 * @param cuentaCliente
	 * @param fechaApertura
	 * @param saldoActual
	 * @param maximasOperacionesMensuales
	 * @param costoMantenimiento
	 * @param limiteSaldoNegativo
	 * @param saldoNegativo
	 */
	public CuentaCorriente(long numero, Cliente cuentaCliente,
			Date fechaApertura, double saldoActual,
			int maximasOperacionesMensuales, double costoMantenimiento,
			double limiteSaldoNegativo, double saldoNegativo) {
		super(numero,cuentaCliente,fechaApertura,saldoActual);
		this.maximasOperacionesMensuales = maximasOperacionesMensuales;
		this.costoMantenimiento = costoMantenimiento;
		this.limiteSaldoNegativo = limiteSaldoNegativo;
		this.saldoNegativo = saldoNegativo;
	}

	public int getMaximasOperacionesMensuales() {
		return maximasOperacionesMensuales;
	}

	public void setMaximasOperacionesMensuales(int maximasOperacionesMensuales) {
		this.maximasOperacionesMensuales = maximasOperacionesMensuales;
	}

	public double getCostoMantenimiento() {
		return costoMantenimiento;
	}

	public void setCostoMantenimiento(double costoMantenimiento) {
		this.costoMantenimiento = costoMantenimiento;
	}

	public double getLimiteSaldoNegativo() {
		return limiteSaldoNegativo;
	}

	public void setLimiteSaldoNegativo(double limiteSaldoNegativo) {
		this.limiteSaldoNegativo = limiteSaldoNegativo;
	}

	public double getSaldoNegativo() {
		return saldoNegativo;
	}

	public void setSaldoNegativo(double saldoNegativo) {
		this.saldoNegativo = saldoNegativo;
	}

	public void setNumero(long nro){
		this.setNumero(nro);
	}
}
